package com.yby6.system.service;

import com.baomidou.mybatisplus.extension.service.IService;
import com.yby6.common.core.domain.SysUser;
import com.yby6.system.vo.SysUserVo;

import java.util.List;

/**
 * ClassName: Loginfo
 * Description: 杨不易网站 :www.yangbuyi.top
 * date: 2021/5/13
 * @author Yang Shuai
 * @since JDK 1.8
 **/

public interface SysUserService extends IService<SysUser> {

	/**
	 * 根据数组ID批量删除用户
	 * @param id
	 * @return
	 */
	int deleteUserByIds(Long[] id);

	/**
	 * 新增用户信息
	 * @param record
	 * @return
	 */
	int insert(SysUserVo record);

	/**
	 * 更新用户信息
	 * @param record
	 * @return
	 */
	int update(SysUserVo record);

	/**
	 * 根据用户名称获取用户信息
	 * @param usernamePasswordToken
	 * @return
	 */
//	SysUser getByUsername(UsernamePasswordToken usernamePasswordToken);

	/**
	 * 更新用户启用、禁用状态
	 * @param id
	 * @param status
	 * @return
	 */
	int enabled(Long id, Long status);

	/**
	 * 分页查询用户集合
	 * @param sysUser
	 * @return
	 */
	List<SysUser> list(SysUser sysUser);

	/**
	 * 根据用户ID查询用户信息
	 * @param id
	 * @return
	 */
	SysUserVo getUserById(Long id);

	/**
	 * 登陆成功更新登陆时间
	 * @param sysUser
	 */
	void updateByLoginTime(SysUser sysUser);

	/**
	 * 根据用户openId查询用户
	 * @param openid
	 * @return 用户
	 */
	SysUser getUserByOpenId(String openid);

	/**
	 * 根据openId更新头像、昵称
	 * @param sysUserVo
	 * return int
	 */
	int updateByOpenId(SysUserVo sysUserVo);

	/**
	 * 根据人脸ID查询用户信息
	 * @param faceId
	 * @return
	 */
	SysUser getUserInfoByFaceId (String faceId);

	/**
	 * 根据用户ID获取角色
	 * @return result roles
	 * @param id
	 */
    List<String> selectRolesByUserId (Long id);
}

